import { defineStore } from 'pinia'
import { store } from '@/store'
import type { setType } from './types'
import { getConfig } from '@/config'

export const useSettingStore = defineStore({
  id: 'pure-setting',
  state: (): setType => ({
    title: getConfig().Title,
    fixedHeader: getConfig().FixedHeader,
    hiddenSideBar: getConfig().HiddenSideBar,
  }),
  getters: {
    getTitle() {
      return this.title
    },
    getFixedHeader() {
      return this.fixedHeader
    },
    getHiddenSideBar() {
      return this.HiddenSideBar
    },
  },
  actions: {
    CHANGE_SETTING({ key, value }) {
      // eslint-disable-next-line no-prototype-builtins
      if (this.hasOwnProperty(key)) {
        this[key] = value
      }
    },
    changeSetting(data) {
      this.CHANGE_SETTING(data)
    },
  },
})

export function useSettingStoreHook() {
  return useSettingStore(store)
}
